Linux远程免密登录

两台linux 服务器,实现linux11 免密登录linux12

预设环境说明
假设 linux11 地址:10.10.10.11 用户为 root

假设 linux12 地址:10.10.10.12 用户为 root

Linux 环境为 centos 7

在linux11 上执行
生成 SSH 密钥对
如果本地机器已经生成过 SSH 密钥对,可跳过此步骤。

使用 ssh-keygen 命令生成密钥

1
2
3
4
5
# 使用 ED25519 加密算法生成
ssh-keygen -t ED25519 -C "some comments"

# 也可以使用默认的 RSA 加密算法
ssh-keygen -t RSA -C "some

ssh-keygen 参数用法可参考网络。

根据后续命令(文件名称、密码等)提示生成密钥对。

假如使用的是 ED25519 算法,使用默认配置生成密钥对,不设置密码,那么应该可以在用户根目录找到:

私钥文件 \root.ssh\id_ed25519
公钥文件 \root.ssh\id_ed25519.pub
后边步骤我们将用到公钥文件 id_ed25519.pub
注意,.ssh 为隐藏文件夹

在 Linux 上添加公钥
检查 sshd 服务状态,并查看服务端口(默认端口 22,如果不是 22 则使用 ssh 命令时需要使用 ssh -P {端口号} 指定端口号)。

1
systemctl status sshd

如果服务已启动,则可以看到服务状态,查看服务端口

如果 SSH 服务端没有安装/启动,则应该先安装/启动 SSH 服务。

查看 SSH 服务配置 /etc/ssh/sshd_config,添加 PubkeyAuthentication yes,允许使用公钥免密认证 SSH 登陆。

1
/etc/ssh/sshd_config

也可以查看到认证公钥文件配置

一般默认为 AuthorizedKeyFile .ssh/authorized_keys

将linux11 公钥 id_ed25519.pub 中的内容复制到 linux12 /root/.ssh/authorized_keys 文件夹中。

如果 /root/.ssh/authorized_keys 文件不存在,直接创建文件即可。

添加完之后,重启 linux12 的 SSH 服务,

1
systemctl restart sshd

即可使用 linux11免密登陆 linux12

1
ssh root@10.10.10.12 -P 22

注意第一次免密,要填写yes 同意协议

一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

继开 wechat
欢迎加我的微信,共同交流技术